home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 099 (1989-05-15)(Ossowski, Stefan)(DE)(PD).zip / Taifun 099 (1989-05-15)(Ossowski, Stefan)(DE)(PD).adf / PCQ / Runtime / readcharray.asm < prev    next >
Assembly Source File  |  1989-03-31  |  901b  |  58 lines

  1.  
  2. *    ReadCharray.asm (of PCQ Pascal runtime library)
  3. *    Copyright (c) 1989 Patrick Quaid
  4.  
  5. *    This reads a character array, one character at a time, from
  6. *    a text file.
  7.  
  8.     SECTION    ONE
  9.  
  10.     XREF    _p%readonechar
  11.     XREF    _p%getthatchar
  12.     XREF    stdinbuffed
  13.     XREF    _p%readarbbuf
  14.  
  15.     XDEF    _p%readcharray
  16. _p%readcharray
  17.     move.l    a0,a1
  18.     move.l    4(sp),a0
  19.     move.l    #0,d2
  20.     move.l    a0,d0
  21.     bne.s    readarrayfile
  22. 1$    movem.l    a0-a1,-(sp)
  23.     jsr    _p%readonechar
  24.     movem.l    (sp)+,a0-a1
  25.     jsr    _p%getthatchar
  26.     cmp.b    #10,d0
  27.     bne    2$
  28.     move.b    #-1,stdinbuffed
  29.     bra.s    rarfill
  30. 2$    move.b    d0,0(a1,d2.l)
  31.     addq.l    #1,d2
  32.     cmp.l    d2,d3
  33.     bgt    1$
  34.     rts
  35.  
  36. readarrayfile:
  37.     tst.b    12(a0)
  38.     bne    rarfill
  39.     move.b    4(a0),d0
  40.     cmp.b    #10,d0
  41.     beq    rarfill
  42.     movem.l    d0-d3/a0-a1,-(sp)
  43.     jsr    _p%readarbbuf
  44.     movem.l    (sp)+,d0-d3/a0-a1
  45.     move.b    d0,0(a1,d2.l)
  46.     addq.l    #1,d2
  47.     cmp.l    d2,d3
  48.     bgt    readarrayfile
  49.     rts
  50. rarfill
  51.     move.b    #' ',0(a1,d2.l)
  52.     addq.l    #1,d2
  53.     cmp.l    d2,d3
  54.     bgt    rarfill
  55.     rts
  56.  
  57.     END
  58.